A number of configurations are found in which various types of peripheral devices are coupled to a computer. One example is a gaming device such as an electronic slot machine, electronic keno machine, electronic card game machine (such as poker, blackjack and the like) and electronic lottery terminals. In these situations, a computer which is centered around a microprocessor is coupled to various peripheral devices such as a bill acceptor (for validating currency), a coin acceptor (for validating coins), a card reader (e.g., for reading a credit card, a player-tracker card, a smart card and the like), input/output devices such as a touch screen, keys, indicator lamps, audio output devices such as bells, speakers and the like. In some cases, the operation of a peripheral device is determined by a program stored on a memory device which is mounted on or associated with the peripheral device. The program may control the peripheral device through a peripheral device processor such as a microprocessor, or through logic or other circuitry such as an application-specific integrated circuit (ASIC), programmable logic device and the like. Commonly, some or all of the programming is stored in a non-volatile memory such as a type of read-only memory (ROM). Although many types of read-only memories can be modified to store other or additional programs (such as a programmable read-only memory or PROM), in many previous peripheral devices this was often a labor-intensive and time-consumptive procedure, sometimes involving removing the ROM or other memory device from the peripheral device and reprogramming it in a separate device and/or replacing it with a differently-programmed memory device.
This situation is particularly burdensome in the context of gaming devices in which it is sometimes necessary or desirable to change the programming in a large number of peripheral devices in a relatively short amount of time. One example of such a situation is when it is desired to reprogram a bill-acceptor, e.g. to thwart a previously-unknown counterfeiting scheme. Previous systems which required labor-intensive and time-intensive reprogramming methods increased the risk of incurring losses during the time it took to perform this reprogramming for all the various peripheral devices coupled to various gaming machines (e.g., in a plurality of different casinos).
The situation is particularly troublesome in the context of gaming devices since, in this context, it is not uncommon to have a need for peripheral device reprogramming arise in a fashion which is not under the control of the casino or other operator, such as may arise in response to changes in regulations and/or newly discovered counterfeiting or other cheating schemes (as opposed to updating programs to, e.g., add new features, which is typically an action which is under the control of the casino or other operator).
Furthermore, previous reprogramming took place in a relatively conspicuous manner requiring personnel to access the interior of each individual peripheral and/or terminal, often for an extended period of time, thus potentially alerting the counterfeiters that they had been detected and decreasing the likelihood of using the new software to identify (possibly leading to apprehension of) the counterfeiters. In addition, the time during which a machine was being fitted with the new programs was time that the machine was out of service and not generating revenues.
In some situations, it may be advantageous to update the programming of two or more different peripheral devices coupled to a single gaming device or other computing device. Previous methods would, in this situation, typically have required separately accessing each of the peripheral devices in order to modify or update the memories associated with those peripheral devices.
Additionally, it is often desirable to reprogram peripheral devices of gaming terminals or other computing devices, e.g. to accommodate new games, regulatory changes, correct bugs or other programming errors, install new features and the like. Preferably, this should be accomplished with a minimum of down time of gaming devices (which often are intended normally to be accessible 24 hours a day) and a minimum of inconvenience to players.
Accordingly, it would be advantageous to provide a method and apparatus for downloading programming information to the memories of peripheral devices in a manner which is less labor-intensive and less costly than previously possible, preferably without requiring individual direct access to each peripheral device which is being reprogrammed.